PARADOX-DataSource, Datafield,DBEdit

Otázka od: bugi

12. 9. 2002 0:10

Cau vsetkym!

Info: Delphi 3 Client/Sever Suite + Win2000

Mam zopar banalnych problemov, ale pretoze som greenhorn,
neviem si s nimi poradit.  

Poradte please ...


1.
  - mam formular na ktorom su kompon. pre pracu s databazami.
  - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
    tlacitko "Pridat"
  - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
    vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
    tabulky (paradox)

  - na pridavacom formulari nemozem nadstavit DataSource, ani DataField
    pre komponentu DBEdit.

    Neponuka mi to ani ziadne moznosti, kde je chyba ?


2.
  - na formulari mam niekolko DBMemo-v a jeden Edit a potreboval by som
    to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...



3.
  - program bude pracovat na PC s viacerymi uzivatelmi, potreboval by som
    aby sa pri zadavani novych udajov / bod c.1 / do tabulky automaticky
    do pola DBEdit-ov:

    - s nazvom Login nacital zo systemu aktualne prihlaseny uzivatel
      ( Win2000 )
    - s nazvom Datum nacital zo systemu aktualny datum
    - s nazvom Time nacital zo systemu aktualny cas


4.
  - daju sa v dtb paradox zoradovat udaje podla datumu a casu vzostupne ???
    teda najnovsi datum a cas na prvom riadku ???



Za vsetky odpovede uprimne dakujem!

         
                                   S pozdravom Bugala Alex

Odpovedá: CHMEL Karel, Mgr.

12. 9. 2002 17:18

Ahoj

> Info: Delphi 3 Client/Sever Suite + Win2000
>
> Mam zopar banalnych problemov, ale pretoze som greenhorn,
> neviem si s nimi poradit.  
>
> Poradte please ...
>
>
> 1.
> - mam formular na ktorom su kompon. pre pracu s databazami.
> - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
> tlacitko "Pridat"
> - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
> vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
> tabulky (paradox)
> - na pridavacom formulari nemozem nadstavit DataSource, ani
> DataField
> pre komponentu DBEdit.
>
> Neponuka mi to ani ziadne moznosti, kde je chyba ?

v tom dialogu je musis mit komponentu Table a DataSource a vse
prislusne propojene (v Table nastaveno DatabaseName a TableName
a v DataSource nastavit DataSet na prislusnou Table

>
>
> 2.
> - na formulari mam niekolko DBMemo-v a jeden Edit a
> potreboval by som
> to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...

bud si nastav spravne poradi prvku a v obsluze OnShow zavolej metodu
SetFocus prislusneho Editu
>
>
>
> 3.
> - program bude pracovat na PC s viacerymi uzivatelmi,
> potreboval by som
> aby sa pri zadavani novych udajov / bod c.1 / do tabulky
> automaticky
> do pola DBEdit-ov:
>
> - s nazvom Login nacital zo systemu aktualne prihlaseny uzivatel
> ( Win2000 )
> - s nazvom Datum nacital zo systemu aktualny datum
funkce Date vraci aktualni datum, do retezce ho prevedes funkci DateToStr(),
nejlepe nastavit opet v obsluze OnShow
> - s nazvom Time nacital zo systemu aktualny cas
funkce Time vraci aktualni datum, do retezce ho prevedes funkci TimeToStr(),
nejlepe nastavit opet v obsluze OnShow
>
>
> 4.
> - daju sa v dtb paradox zoradovat udaje podla datumu a casu
> vzostupne ???
> teda najnovsi datum a cas na prvom riadku ???

Ano, vse zavisi na definici tabulky a indexu


Karel

Odpovedá: Lebeda David

12. 9. 2002 9:14

> 1.
> - mam formular na ktorom su kompon. pre pracu s databazami.
> - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
> tlacitko "Pridat"
> - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
> vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
> tabulky (paradox)
>
> - na pridavacom formulari nemozem nadstavit DataSource, ani
> DataField
> pre komponentu DBEdit.

Ahoj, melo by pomoci formular, kde je Datasource ci TTable apod. dat do uses
pridavaciho formu }melo by stacit uses v implementation sekci.

> 2.
> - na formulari mam niekolko DBMemo-v a jeden Edit a potreboval by
> som
> to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...

Moc nerozumim, ale snad neco takoveho:

Edit1.SetFocus;

nebo

Form.ActiveControl := Edit1;


> - s nazvom Login nacital zo systemu aktualne prihlaseny uzivatel
> ( Win2000 )

Na to jsou funkce, ted z hlavy nevim, tusim WNGetCurrentUser (fakt z hlavy
nevim,
viz help)

> - s nazvom Datum nacital zo systemu aktualny datum
> - s nazvom Time nacital zo systemu aktualny cas

Fce Date, Time, popr. Now.

> 4.
> - daju sa v dtb paradox zoradovat udaje podla datumu a casu
> vzostupne ???
> teda najnovsi datum a cas na prvom riadku ???

Nevidim duvod, proc by to nemelo jit. Bud pres index nebo v query SQL prikazem.

David Lebeda

Odpovedá: Pavel Zichovsky

12. 9. 2002 7:28

Zdravim,

> 1.
> - mam formular na ktorom su kompon. pre pracu s databazami.
> - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
> tlacitko "Pridat"
> - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
> vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
> tabulky (paradox)
>
> - na pridavacom formulari nemozem nadstavit DataSource, ani DataField
> pre komponentu DBEdit.
>
> Neponuka mi to ani ziadne moznosti, kde je chyba ?

Chyba je v tom, ze ten form, kde mas ty DBedity "nevidi" form s tabulkou,
protoze ho
nemas v "uses". deji si tu unitu s DB formem do uses unity s formem na upravu a

pojede to.

> 2.
> - na formulari mam niekolko DBMemo-v a jeden Edit a potreboval by som
> to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...

dbedit1.setfocus;
pripadne nastavit v IDE tab order

> 3.
> - program bude pracovat na PC s viacerymi uzivatelmi, potreboval by som
> aby sa pri zadavani novych udajov / bod c.1 / do tabulky automaticky
> do pola DBEdit-ov:
>
> - s nazvom Login nacital zo systemu aktualne prihlaseny uzivatel
> ( Win2000 )

table1['Login']:=nejakmusiszjistitjmenoprihlasenehouzivatele;

> - s nazvom Datum nacital zo systemu aktualny datum

table1['Datum']:=date;

> - s nazvom Time nacital zo systemu aktualny cas

table1['Time']:=time;

Nevim, jestli D3 umi k polim tabulky pristupovat pomoci table1['jmenopole'].
Pokud ne,
tak musis pouzit konstrukci table1.fieldbyname('jmenopole').astyp (vice viz
napoveda,
kde take najdes vse, co je popsano vyse  .


> 4.
> - daju sa v dtb paradox zoradovat udaje podla datumu a casu vzostupne ???
> teda najnovsi datum a cas na prvom riadku ???

Udelas si sekundarni index, ktery to bude delat. V Delphi pak jen te tabulce
nastavis
property indexname na jmeno toho vytvoreneho sekundarniho indexu.

> Za vsetky odpovede uprimne dakujem!

Nojo, nemas zac  


S pozdravem
Pavel Žichovský (zichovsky@trul.cz)

Odpovedá: Jan Sebelík

13. 9. 2002 7:29

> Odesílatel: bugi <bugala_a@centrum.sk>

> 1.
> - na pridavacom formulari nemozem nadstavit DataSource, ani DataField
> pre komponentu DBEdit.
Uses na unitu formulare, kde je ten DataSource?

> 2.
> - na formulari mam niekolko DBMemo-v a jeden Edit a potreboval by som
> to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...
Edit.SetFocus?

> 3.
> aby sa pri zadavani novych udajov / bod c.1 / do tabulky automaticky
udalost Table.AfterInsert:
Table.FieldByName('Login').asString:= ...
Table.FieldByName('Datum').asDateTime:= Date;
Table.FieldByName('Time').asDateTime:= Time;

> 4.
> - daju sa v dtb paradox zoradovat udaje podla datumu a casu vzostupne ???
> teda najnovsi datum a cas na prvom riadku ???
Myslis sestupne, tedy od nejvyssiho po nejnizsi
select * from tabulka order by datum, cas desc;

> Za vsetky odpovede uprimne dakujem!
Uz jsi to tady slysel mnohokrat, ale pridam jeste jednu radu.
Vynalozil bych maximalni usili, abych se vyhnul Paradoxu.
To tim spis, ze jde o aplikaci se sdilenim dat.

Honza
=========================================
= HAES - RNDr. Jan Sebelik
= http://www.haes.cz
= Skolici a konzultacni stredisko pro Delphi a Win32
= Vojtiskova 206
= 507 81 Lazne Belohrad
= tel. 0434 692 569 (0776 347735)
=========================================

Odpovedá: Petr Brant

12. 9. 2002 8:34

Musim Paradox pouzivat, takze ho znam dobre, ale pokud muzu doporucit a mas
na vyber, tak radeji nejake to SQL. Ale neni-li to mozne, priprav se na
problemy. Osobni zkusenost.
>
> 1.
> - mam formular na ktorom su kompon. pre pracu s databazami.
> - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
> tlacitko "Pridat"
> - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
> vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
> tabulky (paradox)
>
> - na pridavacom formulari nemozem nadstavit DataSource, ani DataField
> pre komponentu DBEdit.
>
> Neponuka mi to ani ziadne moznosti, kde je chyba ?
>

Patrne na tom formu nemas zadnou komponentu TTable vazanou na nejaky ten
TDataSet. Pokud to D3 umi, pouzij TDataModul. Pokud ne, pouzij nejaky skryty
form, kam das tabulku a dataset a do uses obou tech formularu das odkaz na
tento skryty form. Pak budes mit k dispozici dataset i table z obou
formularu.

>
> 2.
> - na formulari mam niekolko DBMemo-v a jeden Edit a potreboval by som
> to nadstavit tak, aby kurzor blikal v Edite a nie v DBMem-e ...
>

Tohle nevim, ale snad pujde pouzit SetFocus.

>
> 3.
> - program bude pracovat na PC s viacerymi uzivatelmi, potreboval by som
> aby sa pri zadavani novych udajov / bod c.1 / do tabulky automaticky
> do pola DBEdit-ov:
>
> - s nazvom Login nacital zo systemu aktualne prihlaseny uzivatel
> ( Win2000 )
> - s nazvom Datum nacital zo systemu aktualny datum
> - s nazvom Time nacital zo systemu aktualny cas

- nevim, ale urcite na to bude nejaka API funkce
- Table.FieldByName('Datum').AsDateTime:= trunc(now);
- Table.FieldByName('Time').AsDateTime:= frac(now);
 
>
> 4.
> - daju sa v dtb paradox zoradovat udaje podla datumu a casu vzostupne
???
> teda najnovsi datum a cas na prvom riadku ???

STaci si udelat secondary index a nekde v DBDesktopu zaskrtnout
"descending". Samotne serazeni se provede nastavenim property IndexName,
napr. Table.IndexName:= 'JmenoIndexu';

>
> Za vsetky odpovede uprimne dakujem!
>

Za malo.

RNDr. Petr Brant [brant@dcomm.cz]
http://web.redbox.cz/petr.brant
ICQ #68652380

D&COMM s.r.o.
Korunovační 6
170 00 Praha 7

Odpovedá: Petr Hložek

12. 9. 2002 22:59

> > - mam formular na ktorom su kompon. pre pracu s databazami.
> > - vytvoril som dalsi formular, ktory sa zobrazi pri kliknuti na
> > tlacitko "Pridat"
> > - na tomto pridavacom Forme su DBEdit-y, ktore by sa mali
> > vyplnit a po kliknuti na "OK" by sa mali nove udaje zapisat do
> > tabulky (paradox)
> >
> > - na pridavacom formulari nemozem nadstavit DataSource, ani DataField
> > pre komponentu DBEdit.
> >
> > Neponuka mi to ani ziadne moznosti, kde je chyba ?

Zkus to do te property Datasource primo napsat. Treba MainForm.Datasource1
Mohlo by to fungovat .....
Petr